/*
 * Utilidades.h
 *
 *  Created on: 02/12/2012
 *      Author: d
 */
#ifndef UTILIDADES_H_
#define UTILIDADES_H_
#include <math.h>
#include "ColeccionDeBits.h"

class ColeccionDeBits;

class Utilidades {
public:
	Utilidades();
	
	/**
	 *
	 * @param coleccion de bits que representan un numero binario
	 *
	 * @return la representaci�n en decimal del numero binario recibido por par�metro
	 */
	int obtenerRepresentacionDecimalDe(ColeccionDeBits* representacionBinaria);
	
	/**
	 *
	 * @param numero decimal a convertir
	 *
	 * @return una colecci�n de bits que representan en binario el numero rtecibido por par�metro 
	 */
	ColeccionDeBits* obtenerRepresentacionBinariaDe(int numeroDecimal);
	
	/**
	 *
	 * @param exponente de la potenciaci�n
	 *
	 * @return el resultado de calcular la potencia en base dos con exponente dado por argumento 
	 */
	int potenciaBaseDos(int numeroDecimal);
	
	/**
	 *
	 * @param numero 
	 *
	 * @return devuelve la parte entera del logaritmo en base dos del valor pasado por par�metro
	 */
	int parteEnteraDeLogBaseDos(int numeroDecimal);
	
	/**
	 *
	 * @param numero 
	 *
	 * @return resultado de calcular el logaritmo en base dos del valor pasado por par�metro
	 */
	double logBaseDos(int numeroDecimal);
	
		/**
	 *
	 * @param numero
	 *
	 * @return devuelve la parte entera del valor pasado por par�metro
	 */
	int obtenerParteEntera(double numeroDecimal);
	
	/**
	 *
	 * @param numero
	 * @return true si el prametro es un entero par, false en caso contrario
	 */
	bool esPar(int numero);

	~Utilidades();
};
#endif /* UTILIDADES_H_ */
